Skip to content

Async vs Multithreading: net10.0, Environment.CurrentManagedThreadId, joined worker threads - #2138

Open
vladimir-pecanac-main wants to merge 1 commit into
CodeMazeBlog:mainfrom
vladimir-pecanac-main:seo/61476-csharp-async-vs-multithreading
Open

Async vs Multithreading: net10.0, Environment.CurrentManagedThreadId, joined worker threads#2138
vladimir-pecanac-main wants to merge 1 commit into
CodeMazeBlog:mainfrom
vladimir-pecanac-main:seo/61476-csharp-async-vs-multithreading

Conversation

@vladimir-pecanac-main

Copy link
Copy Markdown
Collaborator

Sample refresh for https://code-maze.com/csharp-async-vs-multithreading/

  • AsynchronousProgramming and Tests retargeted net6.0 -> net10.0
  • Test SDK 16.11.0 -> 17.14.1, MSTest 2.2.7 -> 3.10.4
  • Thread.CurrentThread.ManagedThreadId -> Environment.CurrentManagedThreadId in all six demo methods (recommended form since .NET 6, and the demo is entirely about printing thread ids)
  • new Thread(new ThreadStart(FirstMethod)) -> new Thread(FirstMethod); the explicit delegate has been unnecessary since C# 2
  • ExecuteMultithreading() now calls t1.Join(); t2.Join(); t3.Join();. Previously it started three threads and returned, and Main is async Task, so whether the multithreading output appeared at all depended on process shutdown timing.

Build and 3/3 tests green on .NET SDK 10.0.302.

…ThreadId, drop ThreadStart ceremony, join the worker threads

- AsynchronousProgramming and Tests retargeted net6.0 -> net10.0
- Test SDK 16.11.0 -> 17.14.1, MSTest 2.2.7 -> 3.10.4
- Thread.CurrentThread.ManagedThreadId -> Environment.CurrentManagedThreadId in all six demo methods
- new Thread(new ThreadStart(M)) -> new Thread(M)
- ExecuteMultithreading() now joins t1/t2/t3 so the demo output no longer races process shutdown
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant